URI(Uniform Resource Identifier)
采用一种特定语法标识一个资源的字符串
格式:
模式:模式特定部分(模式特定部分的语法取决于所用的模式)
模式包括:
由小写字母、数字和加号、点及连号符组成
data链接中直接包含的Base64编码数据
file本地磁盘的文件
ftp FTP服务器
HTTP使用超文本传输协议的国际互联网服务器
mailto电子邮件地址
magnet可以通过对等网络下载的资源
Telnet与基于Telnet的服务连接
模式特定部分包扩:
//authority/path?query(//授权机构/路径?查询字符串)
由ASCII字母数字符号组成,还可以使用标点符号-、_、·、!、~
定界符(/、?、&、=)可以有其预定义用途
所有其他字符及内容中需用到的定界符也应用%转义(空格%20/%2F)
authority:负责解析该URI其余部分的授权机构 授权机构是Internet主机,还可提供可选的用户名和端口 如:ftp://mp3:mp3@ci43198-a.ashvill.nc.home.com:33/VanHalen-Jump.mp3
path:授权机构用来确定所标识资源的字符串
URL最常见的URI
两者区别:URI表示资源是什么,URL表示资源的具体位置,URI是URL的抽象。Java中URL对象对应网络获取的应用层协议的一个表示,而URI对象纯粹用于解析和处理字符串。
绝对URL
protocol://userInfo@host.port/path?query#fragment
host 提供所需资源服务区的名字(主机/服务器ip地址)
userInfo 可选,服务器登录信息
port 可选,服务在其默认端口运行,无需此部分
path 指定服务器上的一个特定目录文件系统,路径相对于服务器的文档跟目录,向公众开放的服务器不会将其整个文件系统展示给客户端,而只是展示指定目录中的内容
query 向服务器提供附加参数,一般只在http URL中使用,其中包含表单数据,作为输入提供给服务端的运行程序
fragment 指向远程资源的某个特定部分 HTML 锚 XML XPointer 段 ref 片段标识符在HTML文档中用id属性创建
包含片段标识符的是URL引用,不是URL
相对URL继承了 父文档部分信息的URL
在相对URL中,缺少的各部分都与所在文档的URL中对应的部分相同
例如浏览http://www.ibiblio.org/java/faq/javatutoial.html时
若无"/"开头 例如<__a href="javafaq.html">
相当于http://www.ibiblio.org/java/faq/javafaq.html
若以"/"开头 如<__a href="/projects/ipv61">
则相当于http://www.ibiblio.org/projects/ipv61
相对URL允许用多种协议来提供一个文档树,且相对URL允许将整个文档树从一个网站移动或复制到另一个网站,而不会破坏所有的内部连接。